
// function abc (sql, params, callback) {
//   const mysql = require('mysql');
//   const conn = mysql.createConnection({
//     host: 'localhost',
//     user: 'root',
//     password: 'root',
//     database: 'tj2'   //数据库名,不是表的名称,具体是要数据库中的那个表,用的是在sql语句总才能体现
//   });
//   conn.connect();
//   conn.query(sql, params, callback);
//   conn.end(); 
// }
// 把分装好的方法暴露出去,其他问加你才可以引用
// abc = require('./file/abc') 这样就可以引用它了
// module.exports = abc

// 下方是一些具体的引用的方式
// abc('insert into ccc set ?',{ name: "廉颇", alias: 123 }, (err, result) => {
//   if (err === null) {
//     console.log(result);
//   } else {
//     console.log(err);
//   }
// })

// 这里是封装了一个增删改查的函数,这个函数具体改怎么用,后面有具体的用法,我们可以看
// 下一个文件,就是测试这个封装的函数的用法,用在写接口上面
// node中任何一个js文件都可以认为是一个第三方的模块,都可以被导入到任何一个文件中使用
// 如果其他文件要引用这个封装好的方法,实际上就是在js文件中引入js文件,这个方法如下
// const abc = require('abc') 括号内是具体的文件路径,这就可以了

// 这里改造为一个promise形式的函数
module.exports = function (sql , params = null) {
  return new Promise ((resolve, reject) => {
      const mysql = require('mysql');
      const conn = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: 'root',
        database: 'tj2'   
      });
      conn.connect();
      conn.query(sql, params, (err, result) => {
        err ? reject(err) : resolve(result)
      });
      conn.end(); 
  }).catch (err => {
    console.log('错误的描述信息为: ' + err.sqlMessage);
    console.log('错误的SQL为 ' + err.sql);
  })
}